package initialize

import (
	"black_mamba/global"
	"gitee.com/wengo/windows_gui/app"
	"gitee.com/wengo/windows_gui/kernel32"
	"gitee.com/wengo/windows_gui/user32"
	"gitee.com/wengo/windows_gui/window"
	"unsafe"
)

func App(layoutFile []byte) {
	a := app.New(true)

	// 文件会存放在Users\wengo\AppData\Local\Tempxcgui_debug.txt
	a.EnableDebugFile(false)

	/* 从内存加载，适合生产环境*/
	// 从内存zip中加载资源文件
	a.LoadResourceZipMem(layoutFile, "resource.res", "")
	// 从内存zip中加载布局文件
	hWindow := a.LoadLayoutZipMem(layoutFile, "main.xml", "", 0, 0)

	/* 从本地目录加载, 适合开发环境
	// 添加文件搜索路径, 你运行时需要改成自己的路径, 也可以使用相对路径
	a.AddFileSearchPath(`D:\black_mamba\ui`)
	// 从zip中加载资源文件
	a.LoadResource("resource.res")
	// 从zip中加载布局文件
	hWindow := a.LoadLayout("main.xml", 0, 0)*/

	if hWindow == 0 {
		panic("error")
	}

	hIcon := user32.LoadImage(kernel32.GetModuleHandle(nil), MakeIntResource(2), 1, 0, 0, 0x0040)
	//设置缩略图图标
	//WM_SETICON		  = 128 // 窗口图标
	a.SendMessage(hWindow, 128, 1, int(hIcon))
	a.SendMessage(hWindow, 128, 0, int(hIcon))

	win := window.NewWindowByHandle(hWindow)

	global.BM_APP = a
	global.BM_WINDOW = win
	global.BM_LAYOUTZIPFILE = layoutFile
}

func MakeIntResource(id uint16) *uint16 {
	return (*uint16)(unsafe.Pointer(uintptr(id)))
}
